#ifndef C2ELIB_DATATYPE_NCMAP_H
#define C2ELIB_DATATYPE_NCMAP_H

#include <windows.h>

// NcMap句柄类型
typedef void* NcMapHandle;

// NcMap功能函数
__declspec(dllexport) NcMapHandle __stdcall NcMapCreate();
__declspec(dllexport) void __stdcall NcMapDestroy(NcMapHandle map);

// 设置不同类型的值
__declspec(dllexport) int __stdcall NcMapSetInt(NcMapHandle map, const char* key, int value);
__declspec(dllexport) int __stdcall NcMapSetDouble(NcMapHandle map, const char* key, double* value);
__declspec(dllexport) int __stdcall NcMapSetString(NcMapHandle map, const char* key, const char* value);

// 获取不同类型的值
__declspec(dllexport) int __stdcall NcMapGetInt(NcMapHandle map, const char* key, int* result);
__declspec(dllexport) int __stdcall NcMapGetDouble(NcMapHandle map, const char* key, double* result);
__declspec(dllexport) const char* __stdcall NcMapGetString(NcMapHandle map, const char* key);

// 其他操作
__declspec(dllexport) int __stdcall NcMapRemove(NcMapHandle map, const char* key);
__declspec(dllexport) int __stdcall NcMapSize(NcMapHandle map);
__declspec(dllexport) int __stdcall NcMapContains(NcMapHandle map, const char* key);
__declspec(dllexport) void __stdcall NcMapClear(NcMapHandle map);

// 获取所有键（返回以分号分隔的字符串）
__declspec(dllexport) const char* __stdcall NcMapGetKeys(NcMapHandle map);

#endif // C2ELIB_DATATYPE_NCMAP_H 